﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LDSP.BRL;

namespace ImplementationInitialization
{
    public static class CatologImport
    {
        static IDictionary<string, Catalog> _catalogDic;
        public static void Run()
        {
            //Remove all catalogs.
            //IList<Catalog> all = new Catalog().GetAllCatalogs();
            //foreach (Catalog ct in all)
            //{
            //    ct.Delete();
            //}

            //获取所有目录
            IList<Catalog> catalogs = new Catalog().GetAllCatalogs();
            _catalogDic = new Dictionary<string, Catalog>();
            foreach (Catalog catalog in catalogs)
            {
                if (!_catalogDic.ContainsKey(catalog.Name))
                {
                    _catalogDic.Add(catalog.Name, catalog);
                }
            }

            //导入初始化目录
            int id = AddCataLog("环境保护");
            AddCataLog("环境综合管理", id);
            AddCataLog("大气", id);
            AddCataLog("水", id);
            AddCataLog("噪声", id);
            AddCataLog("固体废弃物", id);
            AddCataLog("土壤", id);
            AddCataLog("清洁生产和能源管理", id);
            AddCataLog("新化学物质", id);
            AddCataLog("放射和辐射管理", id);
            AddCataLog("环境应急管理", id);

            id = AddCataLog("安全生产");
            int id_1 = AddCataLog("安全综合管理", id);
            int id_2 = AddCataLog("消防安全", id);
            AddCataLog("消防综合管理", id_2);
            AddCataLog("消防设计与验收", id_2);
            AddCataLog("防爆安全", id_2);
            AddCataLog("消防设备", id_2);
            int id_3 = AddCataLog("运输安全", id);
            AddCataLog("公路", id_3);
            AddCataLog("航空", id_3);
            AddCataLog("海洋/内河", id_3);
            int id_4 = AddCataLog("仓储安全", id);
            int id_5 = AddCataLog("电气安全", id);
            AddCataLog("综合规定", id_5);
            AddCataLog("电气设备", id_5);
            int id_6 = AddCataLog("特种作业", id);
            AddCataLog("特种作业人员管理", id_6);
            AddCataLog("高空作业", id_6);
            AddCataLog("带电作业", id_6);
            AddCataLog("动火作业", id_6);
            AddCataLog("有限空间作业", id_6);
            AddCataLog("厂内机动车辆", id_6);
            AddCataLog("其他作业", id_6);
            int id_7 = AddCataLog("机械安全", id);
            AddCataLog("作业安全", id_7);
            AddCataLog("防护安全", id_7);
            int id_8 = AddCataLog("特种设备安全", id);
            AddCataLog("压力管道", id_8);
            AddCataLog("压力容器", id_8);
            AddCataLog("气瓶", id_8);
            AddCataLog("锅炉", id_8);
            AddCataLog("电梯", id_8);
            AddCataLog("起重设备", id_8);
            AddCataLog("培训考核", id_8);
            AddCataLog("应急管理", id_8);
            AddCataLog("其它", id_8);
            int id_9 = AddCataLog("产品安全", id);
            int id_10 = AddCataLog("安全应急管理", id);

            id = AddCataLog("建设项目");
            AddCataLog("建设项目综合管理", id);
            AddCataLog("环境保护", id);
            AddCataLog("安全生产", id);
            AddCataLog("职业健康", id);
            AddCataLog("项目许可", id);
            AddCataLog("施工验收", id);

            id = AddCataLog("职业健康");
            AddCataLog("职业健康综合管理", id);
            AddCataLog("职业病诊断标准", id);
            AddCataLog("个人防护用品", id);
            AddCataLog("女职工和未成年工保护", id);
            AddCataLog("工程防护标准", id);
            AddCataLog("危害因素检测标准", id);
            AddCataLog("危害作业分级", id);
            AddCataLog("危害接触限值", id);
            AddCataLog("人机工程", id);

            id = AddCataLog("征求意见稿");
            AddCataLog("环境", id);
            AddCataLog("安全生产", id);
            AddCataLog("特种设备安全", id);
            AddCataLog("职业健康", id);
            AddCataLog("道路运输", id);
            AddCataLog("综合管理", id);

            id = AddCataLog("地方法规");
            int id_sh = AddCataLog("上海", id);
            AddCataLog("环境", id_sh);
            AddCataLog("安全生产", id_sh);
            AddCataLog("消防安全", id_sh);
            AddCataLog("特种设备安全", id_sh);
            AddCataLog("职业健康", id_sh);
            AddCataLog("道路运输安全", id_sh);
            AddCataLog("综合管理", id_sh);

            id = AddCataLog("综合管理");
            AddCataLog("保安管理", id);
            AddCataLog("餐饮管理", id);
            AddCataLog("综合法规", id);

            id = AddCataLog("专栏项目");
            AddCataLog("上海法规", id);
            AddCataLog("法律", id);
            AddCataLog("行政法规", id);
            AddCataLog("部门规章", id);
            AddCataLog("人机工程标准", id);
            AddCataLog("劳防用品标准", id);
            AddCataLog("化学品分类和警示标签", id);
            AddCataLog("工伤事故标准", id);
            AddCataLog("工程防护标准", id);
            AddCataLog("建设项目标准", id);
            AddCataLog("放射管理标准", id);
            AddCataLog("检测仪器标准", id);
            AddCataLog("职业健康综合管理标准", id);
            AddCataLog("职业危害作业分级和接触限值标准", id);
            AddCataLog("职业危害因素检测标准", id);
            AddCataLog("职业病诊断标准", id);
        }

        public static int AddCataLog(string name)
        {
            int id = 0;
            if (!_catalogDic.ContainsKey(name))
            {
                Catalog catalog = new Catalog();
                catalog.Name = name;
                id = catalog.Add();
            }

            return id;
        }

        public static int AddCataLog(string name, int parentId)
        {
            int id = 0;

            if (!_catalogDic.ContainsKey(name))
            {
                Catalog c = new Catalog();
                c.Name = name;
                c.ParentID = parentId;
                id = c.Add();
            }

            return id;
        }
    }
}
